/**
 * 
 */
package com.qunar.mina.app.service;

import java.util.Map;

import com.qunar.wireless.ugc.qcfclient.dto.QueryResult;

/**
 * @author tao.zhang
 *
 */
public interface SearchService {

    public QueryResult searcherScan(String keyword, Integer firstResult, Integer maxResult, String searcherName,
            String... fields);

    /**
     * 检索
     * 
     * @param keyword 关键字
     * @param firstResult 开始下标
     * @param maxResult 最大返回数量
     * @param fields 查询字段
     * @return
     */
    public QueryResult searcher(String keyword, Integer firstResult, Integer maxResult, String searcherName,
            String... fields);
    
    /**
     * 检索
     * 
     * @param keyword 关键字
     * @param firstResult 开始下标
     * @param maxResult 最大返回数量
     * @param fields 查询字段
     * @return
     */
    public QueryResult boostSearcher(String keyword, Integer firstResult, Integer maxResult, String searcherName,Map<String,Float> boosts,
            String... fields);


    
    /**
     * 检索
     * 
     * @param keyword 关键字
     * @param isDestin 是否是目的地
     * @param firstResult 第一条位置
     * @param maxResult 最大返回数量
     * @param searcherName 索引文件目录
     * @param fields 查询字段
     * @return QueryResult
     */
    public QueryResult POISearcher(String keyword, Boolean isDestin, Integer firstResult, Integer maxResult,
            String searcherName, String... fields);

    
    
    
    
    /**
     * 批量删除索引
     * 
     * @param terms 条件字段
     * @param writerName 索引文件
     * @return void 
     */
    
    
    /**
     * 模糊匹配查询 
     *
     */
    public QueryResult fuzzySearcher(String keyword, Integer firstResult,
            Integer maxResult, String field);
    
    /**
     * 通配符查询
     * 
     */
    public QueryResult wildcardSearcher(String keyword, Integer firstResult,
            Integer maxResult, String field);
}
